package org.example;

import org.apache.pdfbox.multipdf.Splitter;
import org.apache.pdfbox.pdmodel.PDDocument;

import java.io.File;
import java.io.IOException;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

/**
 * @purpose 分割pdf核心方法
 */
public class pdf {
    public Map<String,Object> division(Integer start,Integer end,Integer page,String file,String name) throws IOException {
        Splitter splitter = new Splitter();
        // 设置起始页、结束页，每个文件的页数
        splitter.setStartPage(start);
        splitter.setEndPage(end);
        splitter.setSplitAtPage(page);
        //文件地址
        PDDocument source = PDDocument.load(new File(file));
        List<PDDocument> list = splitter.split(source);

        Map<String,Object> fileName = new LinkedHashMap<>();

        int i = 0;
        for (PDDocument document : list) {
            i++;
            document.save("C:\\other\\" + name + i + ".pdf");
            // 这里使用了数字转字符串，很特殊的用法
            fileName.put(""+i,"C:\\other\\" + name + i + ".pdf");
        }

        return fileName;
    }
}
